﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Payroll.Common;

namespace Payroll.BusinessLogic.CustomerManager
{
    public partial interface ICustomerService
    {        
        /// <summary>
        /// Saves the specified c.
        /// </summary>
        /// <param name="c">The c.</param>
        /// <returns>ID of Customer</returns>
        int Save(Customer c);
        void dong();
        /// <summary>
        /// Deletes the specified list.
        /// </summary>
        /// <param name="List">The list.</param>
        /// <returns></returns>
        int Delete(List<int> List);
        /// <summary>
        /// Gets all customer.
        /// </summary>
        /// <param name="filter">The filter.</param>
        /// <param name="pageSize">Size of the page.</param>
        /// <param name="pageIndex">Index of the page.</param>
        /// <returns>List of Customer</returns>
        PagedList<Customer> GetAllCustomer(CustomerSearchResult filter, int pageSize = int.MaxValue, int pageIndex = 0);
        /// <summary>
        /// Gets all customer.
        /// </summary>
        /// <param name="pageSize">Size of the page.</param>
        /// <param name="pageIndex">Index of the page.</param>
        /// <returns></returns>
        PagedList<Customer> GetAllCustomer(int pageSize = int.MaxValue, int pageIndex = 0);
        /// <summary>
        /// Gets the customer by id.
        /// </summary>
        /// <param name="customerId">The customer id.</param>
        /// <returns></returns>
        Customer GetCustomerById(int customerId);
        /// <summary>
        /// Gets the name of the customer by.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <returns></returns>
        Customer GetCustomerByName(string name = "");
        #region advande
        #endregion
        #region Object
        #endregion
        #region Genaral Case Work
        CutomerType SaveCutomerType(CutomerType c);
        int DelateCutomerType(int cutomerTypeId);
        List<CutomerType> GetCustomerType(string customerType = "");
        #endregion
        #region CustomerFilter
        #endregion
        #region Dashboard
        #endregion
        /// <summary>
        /// Gets the customer search.
        /// </summary>
        /// <param name="UserId">The user id.</param>
        /// <returns></returns>
        CustomerSearchResult GetCustomerSearch(int UserId);
    }
}
